BATCH


Bien que tout soit expliqué dans batch creator, mon soft telechargeable sur http://www.ilsa.fr.st j'ai tenu a mettre ce vieux tuto de moi qui a plus à pas mal de personnes

1) echo

les bases...

la commande "echo" à plusieurs utilités
echo permet d'afficher du texte exemple :

echo salut

ceci affichera
c:\windows\Bureau>echo salut
salut

mais qu 'est ce que ce c:\windows\Bureau qui vien de s'afficher ???!
c 'est le prompt, retenez juste son nom, cela ne vous servira que... plus tard
il y a un moyen pour que juste "salut" soit affiché
c 'est une commande qui ce présente sous cette forme : "echo off"
donc si vous ecrivez :

echo off
echo salut

il S 'affichera
c:\windows\Bureau>echo off
salut

et la, désolation... le prompt s'affiche encore, suivi de echo off...
MAIS pour ce qui en suit il n'y sera pas présent, ni les commandes! (il ne s'affichera pas "echo salut" mais "salut")
mais comment faire pour que le prompt et "echo off" ne s'affiche pas?
il y a une technique : le "@" permet pour ce qui en suit que le prompt et la commande ne soit pas afficher
donc pour afficher "salut" je peut ecrire

echo off
echo salut

OU

@echo salut

et donc si vous avez un peut de jujote cette commande à dut faire tilte dans votr tête!
si vous voulez que pendant tout votre programme le prompt et aucune commande disgracieuse (lol) ne soit afficher
vous mettez en tête de votre batch "@echo off"

encore une utilitée de echo,
c 'est echo. , cela permet de sauter une ligne


----------------------------------------------------------------------------------------------------------------
2) PAUSE

pause est une commande tres simple
des que vous entrez pause, le programme attend que vous appuiez
sur une touche pour continuer... et affiche le texte : appuiez sur une touche pour continuer...
si vous voulez personnaliser ce message ecrivez

echo votre_message
pause>nul

le "plus grand que" est une redirection, ce que vous verez plus tard...


----------------------------------------------------------------------------------------------------------------
3) CLS

cls permet d'effacer l'ecran, c'est une commande tres utilisée !!
exemple:

@echo off
echo salut ga !
echo.
echo presse une touche!
pause>nul
Cls
echo cool


----------------------------------------------------------------------------------------------------------------
4) DIR

(1)
la commande dir permet d'afficher le contenu d'un dossier
voici sa syntaxe :
DIR [lecteur:][chemin] [P] [\W] [\A[[:]attribut]] [\O[[:]trispecifique]] [\S] [\B][\L][\4]

ouf... ca a l'air compliqué tout ce charabia !
explication...
si vous voulez afficher le contenu de windows vous devez ecrire ceci :

dir c:\windows


(2)
mais... vu le nombre éffarant de fichier dans windows, vous n'aurez pas le temps
de tout voir! ecrivez alors ceci :

dir c:\windows \P

le "\P" permet de marquer un arret appré chaque page...


(3)
SI vous voulez afficher le resultat sur 5 colones ecrivez ceci :

dir c:\windows \W

et rajoutez le "\P" pour marquer une pause a chaque page :

dir c:\windows \P \W

(l'ordre entre \P et \W n'a pas d'importance...)


(4)
si vous voulez maintenant afficher tout les fichiers caché présents dans windows
ecrivez ceci:

dir c:\windows \A:H

il suffit de mettre le "\a:" suivi des lettres:
D pour les repertoires
A pour les fichiers archive
R por les fichers en lecture seule
H pour les fichiers cachés
S pour les fichiers systemes

maintenant si vous voulez afficher les dossiers dans un ordre specifique
par exples par taille vous ecrirez :

dir c:\windows \O:S

il suffit de mettre le "\O" suivvit des lettres
N pour un ordre alphabetique (par defaut)
E pour un classement en fonction des extentions
A pour un classement en fonction des derniers accès
S pour un classement en fonction de la taille


(5)
mettez le "\S" si vous voulez avoir la liste des sous répertoires en plus (en bref mettez ca si vous voulez avoir une liste complète)


(6)
normalement si vous faite par exemple "dir c:\windows" il s'affichera la
liste des dossier ainsi que des commentaires qui sont les suivants

Le volume dans le lecteur C n'a pas de nom
Le numéro de série du volume est xxxx-xxxx
ainsi que la date, taille etc... a coté des fichiers

si vous mettez le "\B" cela n'affichera pas les "commentaires"


(7)
le "\L" permet d'afficher en minuscule


(8)
le "\V" permet d'afficher des commentaires suplémentaires


(9) le "\4" afficher en plus les 4 chiffres de l'année...

----------------------------------------------------------------------------------------------------------------
5) DEL

ceci est une commande mééééchaaaante !! lol
elle permet d'effacer un ficher!
sa syntaxe est tres simple, c'est del suivi du chemin ! par exemple :

del c:\autoexec.bat

(autoexec.bat est un fichier essenciel a votre ordinateur!)

----------------------------------------------------------------------------------------------------------------
6) DELTREE

cette commande est quasi-similaire à "DEL" sauf quel efface un répertoire complet
ainsi que tout ses sous dossiers et ses fichier

seul inconvegnant c'est quel demande une confirmation
pas de problème... mettez "\Y" cela fait qu'il n'y a pas demande de confirmation
exemple

deltree c:\windows \y
echo tu est mouerta !!!

lol

----------------------------------------------------------------------------------------------------------------
7) CD

"cd" permet de ce placer dans un répertoire
par exeple si vous vous placer dans le repertoire test
et que vous affichez tout les dossier, vous allez afficher tout
les dossiers du repertoire test! exemple

cd c: util

("cd .." = ce place dans le repertoire parrent)

----------------------------------------------------------------------------------------------------------------
8) attrib

attrib modifie les attributs d'un fichier

attrib [+R\-R] [+A\-A] [+H\-H] [fichier]

+R active la protection en ecriture
-R fait le contraire
+A active l'attribut d'archivage
-A annule l'attribut d'archivage
+H active l'attribut de caché
-H fait le contraire

exemple

attrib +H c: est

----------------------------------------------------------------------------------------------------------------
9) ettiquettes

une etiquette ce présente sous cette forme :
: etiquette

2 points suivis d'un nom ne pouvant pas depasser les 8 caractères
tout ce qui suit cette etiquette X jusqu'a une autre etiquette Y sera dans l'etiquette X
qui a pour nom ce qui suit les deux points

----------------------------------------------------------------------------------------------------------------
10) goto

la commande goto permet de faire aller le programme a une ettiquette, un exemple serait la bienvenu n'est-ce pas?

@echo off
GoTo intro
: ledir
Cls
dir c:\windows \s \b
echo.
echo appui sur un touche mon vieux frère
pause>nul
GoTo finn
: intro
echo salut mon poote!
echo des que tu appuiras sur une touche, je vais faire un dir de windows
pause>nul
GoTo ledir
: finn
Cls
echo voilaaaaaaaaaaaaaaaaaaaaaaaaaaa c'est fini!

expliquations:
au lancement du programme il vas directemet aller à l'etiquette "intro" ,ne passant pas (encore par l'etiquette "ledir" (remarquez qu'apres goto, pas besoin de mettre les
deux points pour designer l'etiquette...)
à l 'etiquette intro, il s'affichera :
salut mon pote
des que tu appuiras sur une touche, je vais faire un dir de windows

puis le programme vas revenir en arrière, à l'etiquette "ledir"
fair un dir de windows puis saute une ligne et affiche : appui sur un touche mon vieux frère
puis le programme vas aller a letiquette "finn" ingnorant l'ettiquette "intro", pour afficher voilaaaaa c'est fini!


----------------------------------------------------------------------------------------------------------------
11) choice (ATTENTION !! cette commande ne marche pas sous windows NT)

la commande "choice" permet de faire un choix...
elle ce présente comme ceci :

"choice \c:Touches \N \S \t:x,yy texte"

\c:touche est l'endroit ou vous mettrez les choix possibles
exemple : \c:1a3

\n veut dire que l'on aura le droit d'appuier que sur les
touches possibles, sans \n et si il y a le choix
entre 1 et 2 , on pourra entrer par exemple "a" ce qui
provoquera une erreur...

\S : normalement la difference majusule \minuscule n'a pas d'importance...
cette commande permet de faire la difference.

\t:x,yy : veut dire qu'au bout de yy seconde, le programme choisira automatiquement
le choix "x"

texte : metre un petit texte du genre : "votre choix ?"
exemple:

choice \c:1a \t:a,30 \N \S votre choix, 1 ou A?

ATTENTION mettez vous bien dans la tete
que pour chaque choix vous devez attribuer dans votre tete
une valeure numerique : pour l'exemple ci dessus : 1=1 a=2

ca vous servira pour apres :

apres choice \c: ...etc
vous devez mettre ceci (a la ligne bien entendu...)

"if errorlevel x goto etiquette"
" if errorlevel y goto etiquette2"

c 'est la qu'entre en jeu l'attribut numerique...
vous remplacerez x et y par un attribut numerique
ATTENTION : toujour commencer par le plus grand!
puis vous ferrez aller votre choix a une ettiquette


exemple

"if errorlevel 3 goto etikete3"
" if errorlevel 2 goto etikete2"
" if errorlevel 1 goto etikete1"

voici maintenant l'exemple final :

choice \c:1a \n \s \t:a,10 ton choix a ou 1?
if errorlevel 2 goto salu
if errorlevel 1 goto cava

: salut
Cls
echo ca va?
echo.
pause
exit

: cava
Cls
echo salut!
echo.
pause
exit

----------------------------------------------------------------------------------------------------------------
12) FIND

find permet de chercher un caractère ou un mot dans un fichier
exemple:

find "salut" c:\est.doc c:\ruc.doc c:\mince.doc

si vous mettez \N avant le "entre guiemmets votre mot" ,
cela vous indiquera a quel ligne et le mot recherché

\V indique les lignes qui ne contiennent pas le mot recherché
\I cette option ignore les majuscule des minuscules

voila!

----------------------------------------------------------------------------------------------------------------
13)boucles FOR

bon maintenant on ce commplique un peut la sauce
la commande "for" est tres utile,

for ce presente comme ceci :

for %%Variable IN (donnés) DO Commande %%Variable

donc un exemple :
" for %%1 IN (salut comment cava) DO ECHO %%1"

le %%1 vas prendre les valeurs succésives de "salut", puis "comment", puis "cava" et vas les afficher grace à echo!

---------------------------------------------------------------------------------------------------------------
14) les jokers

les jokers permettre de nous aider! (lol)
il y en a deux type :
" *"
et
" ?"

l 'asterisque d'esigne : "tout", par exemple TOUT les fichiers textes s'ecrit comme ceci :
" *.txt" TOUT les POINT TXT (.txt designe les fichiers txt, .sys les fichier systemes etc...)

si je veut afficher tout les fichiers texte du dossier windows , j'ecrirait :

dir c:\winodws*.txt

et le joker "?" designe une lettre : expliquation :
si je veux effacher tout les fichers qui s'apelle cours_numeroX
et que je ne connait pas le X (et que ces fichier ce situent dans "c:" )
j 'ecrirait :

del c:cours_numero?

...juste un exemple sadique :

FOR %%1 IN (*.INI *.SYS *.MP3) DO DEL %%1

devinez ce que cela fait!

---------------------------------------------------------------------------------------------------------------
15) les variables

je pense que je ne pourrait expliquer qu'est ce qu'est une variable qu'en donnent un exemple

@echo off
set message=salut mon pote comment ca va la vie est belle?
echo %message%

expliquations...
ce programme (plus que simpliste) vas afficher le texte : salut mon pote comment ca va la vie est belle?
il utilise la commande set dont la sytaxe est la suivante

Set nom_de_la_variable = valeur_de_la_variable

ici, le nom de la variable et "message" et sa valeur est "salut mon pote comment ca va la vie est belle?"

message pourra alors etre utiliser a n'importe quel moment mais encadrer de "pourcetages"
encore un exemple :

@echo off
set dossier=c:\est
echo je vais créer un dossier nomé %dossier%
md %dossier%

(la commande md permet de créer un dossier)

ceci , me diriez vous, ne sert a rien !! je vous repondrait que ceci evite de se casser les "coroness"
à repeter les meme choses en attribuent, par exemple, la valeur d'une commande longue et compliqué que vous avez à repeter
dans une variable de nom simple par exemple "lol"

voila !!!

---------------------------------------------------------------------------------------------------------------
16) les redirections

les redirection permetent de rediriger une commande vers quelquechose
elles se présentent sous 4 formes :
>
>>
<
|
par exemple, je veux créer un fichier texte avec comme texte inclu "salut gars"
j 'ecrirait

echo salut gars > c:\monfichier.txt

le fichier sera automatiquement créer si il n'existe pas, mais si il existe
son contenu ser totalement effacé pour qu'il n'y ai QUE "salut ga" dedans

si le ficher existe deja mais que vous ne voulez pas effacer son contenu
pour le remplacer par "salut ga" mais au contraire, le rajouter au fichier, vous ecrirez

echo salut gars >> c:\monfichier.txt

maintenant le signe "|" nomé "pipe" permet de rediriger une commande vers une autre commande...
exemple:

echo. | DATE >c:\ladate.txt
echo. | TIME >>c:\ladate.txt

(la commande "date" affiche la date et time affiche le "temps" )

la date et le temps de l'ouverture du fchier vont etre stoqués dans le fichier c:\ladate.txt